export function setItem (key, value) {
  // 这里无论什么数据类型，直接处理就行了
  localStorage.setItem(key, JSON.stringify(value))
}
// setItem('user-token', {a:1, b:2})

export function getItem (key) {
  let value = localStorage.getItem(key)
  try {
    value = JSON.parse(value)
    // 这里如果出现异常，后面的代码不会执行了，会进catch
  } catch (err) {
    // 这个 err 变量没使用，ESLint 怎么没有报错呢？
    // -- 因为这是 try...catch 的语法规则，这里必须写个变量，不然就语法错误了
    // -- 所以 ESLint 也不傻，它能识别这个语法这里是必须要写个变量，而不是你自愿声明的变量，所以就放过你了
    // 如果出现异常，说明原始值就不是一个标准的 JSON 格式字符串
    // 那么就可以直接返回原始值
    return value
  }
  return value
}

export const KEY_USER_TOKEN = 'user-token'
export const KEY_MY_CHANNELS = 'myChannels'
export const KEY_SEARCH_HISTORY_LIST = 'KEY_SEARCH_HISTORY_LIST'
